#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include <queue>
#include <deque>

using namespace std;

#include "priority_queue.h"

void test01()
{
	dr::priority_queue<int> pq;
	pq.push(1);
	pq.push(2);
	pq.push(3);
	pq.push(4);
	pq.push(5);

	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
	cout << endl;

	//cout << pq.top() << endl;
	//pq.pop();
	//pq.pop();
	//cout << pq.top() << endl;

	dr::less<int> l;
	dr::greater<int> g;
	cout << l.operator()(10, 2) << endl;

	cout << l(1, -2) << endl;
}

void test02()
{
	dr::priority_queue<int, vector<int>, greater<int>> pq;
	pq.push(1);
	pq.push(2);
	pq.push(3);
	pq.push(4);
	pq.push(5);

	while (!pq.empty())
	{
		cout << pq.top() << " ";
		pq.pop();
	}
	cout << endl;
}

int main()
{
	test02();

	return 0;
}